package com.dd.probe.common.convertor;

import com.dd.probe.common.pojo.BO.HostInfoBO;
import com.dd.probe.common.pojo.VO.HostInfoVO;
import org.springframework.beans.BeanUtils;

import java.text.DecimalFormat;

/**
 * @Author liuxianmeng
 * @CreateTime 2024/12/22 13:47
 * @Description HostInfo相关信息POJO转换工具类
 */
public class HostInfoConverter {
    /**
     * SystemInfoBO转换为VO
     */
    public static HostInfoVO hostInfoBO2VO(HostInfoBO BO) {
        if(BO == null) return null;
        else {
            HostInfoVO VO = new HostInfoVO();
            // 拷贝相同属性名值
            BeanUtils.copyProperties(BO, VO);

            /*************** 补充计算内存使用百分比 START ***************/
            // 使用 DecimalFormat 格式化结果
            DecimalFormat df = new DecimalFormat("#.####");
            String memoryUsagePercentage = df.format((BO.getMemoryUsed() * 1.0 / BO.getMemoryTotal()));
            VO.setMemoryUsagePercentage(Double.parseDouble(memoryUsagePercentage));
            String diskUsagePercentage = df.format((BO.getDiskUsed() * 1.0 / BO.getDiskTotal()));
            VO.setDiskUsagePercentage(Double.parseDouble(diskUsagePercentage));
            /*************** 补充计算内存使用百分比 END ***************/

            return VO;
        }
    }
}
